<!DOCTYPE html>

<html class="translated-ltr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>混帐</title>
<link rel="stylesheet" type="text/css" href="../C.css">
<script type="text/javascript" src="../jquery.js"></script><script type="text/javascript" src="../jquery.syntax.js"></script><script type="text/javascript" src="../yelp.js"></script>
<link type="text/css" rel="stylesheet" charset="UTF-8" href="https://translate.googleapis.com/translate_static/css/translateelement.css"></head>
<body id="home">
<!--<script src="https://ssl.google-analytics.com/urchin.js" type="text/javascript"></script><script type="text/javascript">
        _uacct = "UA-1018242-8";
        urchinTracker();
      </script><script>
      function englishPageVersion() {
        var href = window.location.href;
        if (href.slice(-1) == "/") {
                window.location = "index.html.en";
        } else {
                window.location = href.replace(/\.html.*/, ".html.en");
        }
         return false;
      }
      function browserPreferredLanguage() {
        var href = window.location.href;
        if (href.slice(-1) == "/") {
                window.location = href;
        } else {
                window.location = href.replace(/\.html.*/, ".html");
        }
        return false;
      }
      </script>--><div id="container">
<div id="container-inner">
<div id="mothership"><ul>
<li><a href="https://partners.ubuntu.com"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">伙伴</font></font></a></li>
<li><a href="https://www.ubuntu.com/support/community-support"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">支持</font></font></a></li>
<li><a href="https://community.ubuntu.com"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">社区</font></font></a></li>
<li><a href="https://www.ubuntu.com"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ubuntu.com</font></font></a></li>
</ul></div>
<div id="header">
<h1 id="ubuntu-header"><a href="https://help.ubuntu.com/"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ubuntu文档</font></font></a></h1>
<ul id="main-menu">
<li><a class="main-menu-item current" href="https://help.ubuntu.com/"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">官方文件</font></font></a></li>
<li><a href="https://help.ubuntu.com/community/CommunityHelpWiki"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">社区帮助Wiki</font></font></a></li>
<li><a href="https://community.ubuntu.com/t/contribute/26"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">有助于</font></font></a></li>
</ul>
</div>
<div id="menu-search"><div id="search-box">
<noscript><form action="https://www.google.com/cse" id="cse-search-box"><div>
<input type="hidden" name="cx" value="003883529982892832976:e2vwumte3fq"><input type="hidden" name="ie" value="UTF-8"><input type="text" name="q" size="21"><input type="submit" name="sa" value="Search">
</div></form></noscript><!--
<script>
                document.write('<form action="https://help.ubuntu.com/search.html" id="cse-search-box">');
                document.write('  <div>');
                document.write('    <input type="hidden" name="cof" value="FORID:9">');
                document.write('    <input type="hidden" name="cx" value="003883529982892832976:e2vwumte3fq">');
                document.write('    <input type="hidden" name="ie" value="UTF-8">');
                document.write('    <input type="text" name="q" size="21">');
                document.write('    <input type="submit" name="sa" value="Search">');
                document.write('  </div>');
                document.write('</form>');
              </script>-->
</div></div>
<div class="trails"><div class="trail">
<a href="https://help.ubuntu.com/18.04" class="trail"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ubuntu 18.04</font></font></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> &nbsp;» </font></font><a class="trail" href="../index.html" title="Ubuntu服务器指南"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ubuntu服务器指南</font></font></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> &nbsp;» </font></font><a class="trail" href="version-control-system.html" title="版本控制系统"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">版本控制系统</font></font></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> &nbsp;»</font></font></div></div>
<div id="cwt-content" class="clearfix content-area"><div id="page">
<div id="content">
<div class="links nextlinks">
<a class="nextlinks-prev" href="bazaar.html" title="市场"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">上一页</font></font></a><a class="nextlinks-next" href="subversion.html" title="颠覆"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">下一页</font></font></a>
</div>
<div class="hgroup"><h1 class="title"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">混帐</font></font></h1></div>
<div class="region">
<div class="contents"><p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Git是一个开源的分布式版本控制系统，最初由Linus Torvalds开发，用于支持linux内核的开发。</font><font style="vertical-align: inherit;">每个Git工作目录都是一个完整的存储库，具有完整的历史记录和完整版本跟踪功能，不依赖于网络访问或中央服务器。</font></font></p></div>
<div class="links sectionlinks" role="navigation"><ul>
<li class="links"><a class="xref" href="git.html#git-installation" title="安装"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">安装</font></font></a></li>
<li class="links"><a class="xref" href="git.html#git-configuration" title="组态"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">组态</font></font></a></li>
<li class="links"><a class="xref" href="git.html#git-usage" title="基本用法"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">基本用法</font></font></a></li>
<li class="links"><a class="xref" href="git.html#git-installing-gitolite" title="安装gitolite服务器"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">安装gitolite服务器</font></font></a></li>
<li class="links"><a class="xref" href="git.html#git-configuring-gitolite" title="Gitolite配置"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Gitolite配置</font></font></a></li>
<li class="links"><a class="xref" href="git.html#git-gitolite-management" title="管理gitolite用户和存储库"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">管理gitolite用户和存储库</font></font></a></li>
<li class="links"><a class="xref" href="git.html#git-gitolite-usage" title="使用您的服务器"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">使用您的服务器</font></font></a></li>
</ul></div>
<div class="sect2 sect" id="git-installation"><div class="inner">
<div class="hgroup"><h2 class="title"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">安装</font></font></h2></div>
<div class="region"><div class="contents">
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
            在</font></font><span class="app application"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">GIT中</font></font></span><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">的版本控制系统安装有下面的命令
            </font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">sudo apt install git</font></font></span>
</pre></div>
</div></div>
</div></div>
<div class="sect2 sect" id="git-configuration"><div class="inner">
<div class="hgroup"><h2 class="title"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">组态</font></font></h2></div>
<div class="region"><div class="contents">
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">每个git用户都应该首先通过运行这两个命令将自己介绍给git：</font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git config --global user.email“you@example.com” </font></font></span>
<span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git config --global user.name“你的名字”</font></font></span>
</pre></div>
</div></div>
</div></div>
<div class="sect2 sect" id="git-usage"><div class="inner">
<div class="hgroup"><h2 class="title"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">基本用法</font></font></h2></div>
<div class="region"><div class="contents">
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
                上述已经足以以分布式和安全的方式使用git，前提是用户可以通过SSH访问承担服务器角色的计算机。</font><font style="vertical-align: inherit;">在服务器计算机上，可以使用以下命令创建新存储库：
            </font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git init --bare / path / to / repository</font></font></span>
</pre></div>
<div class="note" title="注意"><div class="inner"><div class="region"><div class="contents"><p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">这将创建一个裸存储库，不能用于直接编辑文件。</font><font style="vertical-align: inherit;">如果您希望在服务器上拥有存储库内容的工作副本，请省略</font></font><span class="em emphasis"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">--bare</font></font></span><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">选项。</font></font></p></div></div></div></div>
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
                任何具有SSH访问权限的客户端都可以使用以下命令克隆存储库：
            </font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git clone username @ hostname：/ path / to / repository</font></font></span>
</pre></div>
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
                克隆到客户端的计算机后，客户端可以编辑文件，然后提交并与以下内容共享：
            </font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">cd / path / to / repository </font></font></span>
<span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">＃（编辑一些文件</font></font></span>
<span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git commit -a＃提交对本地版本库的所有更改</font></font></span>
<span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git push origin master＃推送更改到服务器版本的存储库</font></font></span>
</pre></div>
</div></div>
</div></div>
<div class="sect2 sect" id="git-installing-gitolite"><div class="inner">
<div class="hgroup"><h2 class="title"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">安装gitolite服务器</font></font></h2></div>
<div class="region"><div class="contents">
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
                虽然上述内容足以创建，克隆和编辑存储库，但是想要在服务器上安装git的用户很可能希望让git像更传统的源控制管理服务器一样工作，具有多个用户和访问权限管理。</font><font style="vertical-align: inherit;">建议的解决方案是</font><font style="vertical-align: inherit;">使用以下命令</font><font style="vertical-align: inherit;">安装</font></font><span class="app application"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">gitolite</font></font></span><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">：
            </font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">sudo apt安装gitolite</font></font></span>
</pre></div>
</div></div>
</div></div>
<div class="sect2 sect" id="git-configuring-gitolite"><div class="inner">
<div class="hgroup"><h2 class="title"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Gitolite配置</font></font></h2></div>
<div class="region"><div class="contents">
<p class="para"><font style="vertical-align: inherit;"></font><span class="app application"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">gitolite</font></font></span><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">服务器的</font><font style="vertical-align: inherit;">
            配置与</font><font style="vertical-align: inherit;">类Unix系统上的大多数其他服务器略有不同。</font><font style="vertical-align: inherit;">而不是/ etc /中的传统配置文件，gitolite将其配置存储在git存储库中。</font><font style="vertical-align: inherit;">因此，配置新安装的第一步是允许访问配置库。
        </font></font></p>
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        首先，让我们创建一个用户访问gitolite作为。
        </font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">sudo adduser --system --shell / bin / bash --group --disabled-password --home / home / git git</font></font></span>
</pre></div>
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        现在我们想让gitolite知道存储库管理员的公共SSH密钥。</font><font style="vertical-align: inherit;">这假定当前用户是存储库管理员。</font><font style="vertical-align: inherit;">如果尚未配置SSH密钥，请参阅</font></font><a class="xref" href="openssh-server.html#openssh-keys" title="SSH密钥"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">SSH密钥</font></font></a>
        </p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">cp~ / .ssh / id_rsa.pub /tmp/$(whoami).pub</font></font></span>
</pre></div>
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        让我们切换到git用户并将管理员密钥导入gitolite。
        </font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">sudo su  -  git </font></font></span>
<span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">gl-setup /tmp/*.pub</font></font></span>
</pre></div>
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        Gitolite将允许您在设置过程中对其配置文件进行初始更改。</font><font style="vertical-align: inherit;">您现在可以从管理员用户（导入其公共SSH密钥的用户）克隆和修改gitolite配置存储库。</font><font style="vertical-align: inherit;">切换回该用户，然后克隆配置存储库：
        </font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">退出</font></font></span>
<span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git clone git @ $ IP_ADDRESS：gitolite-admin.git </font></font></span>
<span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">cd gitolite-admin</font></font></span>
</pre></div>
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">gitolite-admin包含两个子目录，“conf”和“keydir”。</font><font style="vertical-align: inherit;">配置文件位于conf目录中，keydir目录包含用户的公共SSH密钥列表。</font></font></p>
</div></div>
</div></div>
<div class="sect2 sect" id="git-gitolite-management"><div class="inner">
<div class="hgroup"><h2 class="title"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">管理gitolite用户和存储库</font></font></h2></div>
<div class="region"><div class="contents">
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">将新用户添加到gitolite很简单：只需获取其公共SSH密钥并将其作为$ DESIRED_USER_NAME.pub添加到keydir目录中。</font><font style="vertical-align: inherit;">请注意，gitolite用户名不必与系统用户名匹配 - 它们仅在gitolite配置文件中用于管理访问控制。</font><font style="vertical-align: inherit;">同样，删除用户的公钥文件也会删除用户。</font><font style="vertical-align: inherit;">每次更改后，不要忘记将更改提交到git，并将更改推送回服务器</font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git commit -a </font></font></span>
<span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git push origin master</font></font></span>
</pre></div>
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">通过编辑conf / gitolite.conf文件来管理存储库。</font><font style="vertical-align: inherit;">语法是空格分隔的，只是指定存储库列表，后跟一些访问规则。</font><font style="vertical-align: inherit;">以下是默认示例</font></font></p>
<div class="code"><pre class="contents "><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">repo gitolite-admin</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        RW + = admin</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        R =爱丽丝</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
回购项目1</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        RW + =爱丽丝</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        RW =鲍勃</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        R =丹尼斯</font></font><font></font>
</pre></div>
</div></div>
</div></div>
<div class="sect2 sect" id="git-gitolite-usage"><div class="inner">
<div class="hgroup"><h2 class="title"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">使用您的服务器</font></font></h2></div>
<div class="region"><div class="contents">
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">要使用新创建的服务器，用户必须让gitolite admin将其公钥导入gitolite配置存储库，然后他们可以使用以下命令访问他们有权访问的任何项目：</font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git clone git @ $ SERVER_IP：$ PROJECT_NAME.git</font></font></span>
</pre></div>
<p class="para"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">或者将服务器的项目添加为现有git存储库的远程项目：</font></font></p>
<div class="screen"><pre class="contents "><span class="cmd command"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git remote添加gitolite git @ $ SERVER_IP：$ PROJECT_NAME.git</font></font></span>
</pre></div>
</div></div>
</div></div>
</div>
<div class="links nextlinks">
<a class="nextlinks-prev" href="bazaar.html" title="市场"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">上一页</font></font></a><a class="nextlinks-next" href="subversion.html" title="颠覆"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">下一页</font></font></a>
</div>
<div class="clear"></div>
</div>
<div id="pagebottom"></div>
</div></div>
</div>
<div id="footer"><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">本文档中的资料可在免费许可下获得，</font><font style="vertical-align: inherit;">有关详细信息</font><font style="vertical-align: inherit;">，请参阅</font></font><a href="https://help.ubuntu.com/legal.html"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Legal</font></font></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">。</font></font><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          有关贡献的信息，请参阅</font></font><a href="https://wiki.ubuntu.com/DocumentationTeam"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ubuntu文档团队Wiki页面</font></font></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">。</font><font style="vertical-align: inherit;">要报告此serverguide文档中</font></font><a href="https://bugs.launchpad.net/serverguide"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">的错误</font></font></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">，请</font><a href="https://bugs.launchpad.net/serverguide"><font style="vertical-align: inherit;">提交错误报告</font></a><font style="vertical-align: inherit;">。</font></font></p></div>
</div><div id="goog-gt-tt" class="skiptranslate" dir="ltr"><div style="padding: 8px;"><div><div class="logo"><img src="https://www.gstatic.com/images/branding/product/1x/translate_24dp.png" width="20" height="20" alt="Google 翻译"></div></div></div><div class="top" style="padding: 8px; float: left; width: 100%;"><h1 class="title gray">原文</h1></div><div class="middle" style="padding: 8px;"><div class="original-text"></div></div><div class="bottom" style="padding: 8px;"><div class="activity-links"><span class="activity-link">提供更好的翻译建议</span><span class="activity-link"></span></div><div class="started-activity-container"><hr style="color: #CCC; background-color: #CCC; height: 1px; border: none;"><div class="activity-root"></div></div></div><div class="status-message" style="display: none;"></div></div>


<div class="goog-te-spinner-pos"><div class="goog-te-spinner-animation"><svg xmlns="http://www.w3.org/2000/svg" class="goog-te-spinner" width="96px" height="96px" viewBox="0 0 66 66"><circle class="goog-te-spinner-path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle></svg></div></div></body></html>